.TH std::strict_weak_order 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::strict_weak_order \- std::strict_weak_order

.SH Synopsis
   Defined in header <concepts>
   template< class R, class T, class U >                \fI(since C++20)\fP
   concept strict_weak_order = std::relation<R, T, U>;

   The concept strict_weak_order<R, T, U> specifies that the relation R imposes a
   strict weak ordering on its arguments.

   Semantic requirements

   A relation r is a strict weak ordering if

     * it is irreflexive: for all x, r(x, x) is false;
     * it is transitive: for all a, b and c, if r(a, b) and r(b, c) are both true then
       r(a, c) is true;
     * let e(a, b) be !r(a, b) && !r(b, a), then e is transitive: e(a, b) && e(b, c)
       implies e(a, c).

   Under these conditions, it can be shown that e is an equivalence relation, and r
   induces a strict total ordering on the equivalence classes determined by e.

.SH Notes

   The distinction between relation and strict_weak_order is purely semantic.

.SH See also

     * LessThanComparable
